//package com.ming.liteflow.init;
//
//import cn.hutool.core.collection.CollUtil;
//import com.ming.common.liteflow.core.dynamic.IvyDynamicClassPath;
//import org.beetl.sql.core.SQLManager;
//import org.beetl.sql.core.SQLReady;
//import org.beetl.sql.core.query.LambdaQuery;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.stereotype.Component;
//import javax.annotation.PostConstruct;
//import javax.annotation.PreDestroy;
//import javax.annotation.Resource;
//import java.io.IOException;
//import java.nio.file.Files;
//import java.nio.file.Paths;
//import java.util.*;
//
//@Component
//public class DestroyClassInit {
//
//    private static final Logger LOG = LoggerFactory.getLogger(DestroyClassInit.class);
//
//    @Resource
//    private SQLManager sqlManager;
//
//    @PostConstruct
//    public void init(){
//        destroyClass();
//    }
//
//    @PreDestroy
//    public void preDestroy() {
//        destroyClass();
//    }
//
//    public void destroyClass() {
//        LambdaQuery<IvyDynamicClassPath> query = sqlManager.lambdaQuery(IvyDynamicClassPath.class);
//        String tableName = query.getTableName(IvyDynamicClassPath.class);
//        List<IvyDynamicClassPath> list = query.select();
//        if(CollUtil.isNotEmpty(list)){
//            Set<IvyDynamicClassPath> set = new HashSet<>(list);
//            set.forEach(m->{
//                // 强制删除文件夹及其内容
//                try {
//                    Files.walk(Paths.get(m.getPath()))
//                            .sorted((p1, p2) -> -p1.compareTo(p2)) // 逆序遍历，确保先删除子文件夹和文件
//                            .forEach(p -> {
//                                try {
//                                    Files.delete(p);
//                                } catch (Exception e) {
//                                    // 异常处理
//                                    e.printStackTrace();
//                                }
//                            });
//                } catch (IOException e) {
//
//                }
//            });
//            sqlManager.executeUpdate(new SQLReady("truncate table "+ tableName));
//        }
//    }
//
//}
